#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    setWindowTitle("Client");
    setFixedSize(QSize(500,350));
    connect(ui->pushButton,&QPushButton::clicked,this,[&]{
        control( ui->lineEdit->text());
    });


    /* QDBusConnection::sessionBus().connect()  建立到session bus的连接，触发 service_get函数
         * 参数1：                  服务名称，这里为空
         * 参数2："/path"     对象路径
         * 参数3："com.message.test"  接口名称
         * 参数4："send_to_service" 方法名
         * 参数5：this              消息接收者
         */
        QDBusConnection::sessionBus().connect(QString(), "/path", "com.message.test", "send_message",
        this, SLOT(service_get(QString)));

}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::control(QString method)
{
        QDBusMessage message =QDBusMessage::createSignal("/path", "com.message.test", "send_message1");
        message << method;
        QDBusConnection::sessionBus().send(message);
        ui->textEdit->append(QString("send:%1").arg(method));
}

void MainWindow::service_get(QString str)
{
     ui->textEdit->append(QString("recv:%1").arg(str));
}

